﻿
using ChongJu.ModelManager.Rating;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ChongJu.ImageAnalyze
{
    public interface IAnalyzeBase
    {
        RatingResultModel TaskAnalyze(Bitmap image, BitmapData imgData, float weight, bool isUp = true);

        string SaveSegmentImage(string dirPath, string levelCode, double weight);

        string GetModelVersoin();

        Bitmap GetSegmentImage(PixelFormat pixelFormat);

        bool LoadLocalModel(bool isAginLoad = false);

        bool LoadCF();

        void IsDllLogger(bool bol);

        void DisposeXCDNN();

        void CalibraLightCamera(IntPtr imgDir,
            int targetb, int targetg, int targetr,
            ref double gradb, ref double gradg, ref double gradr,
            ref int stepL,
            ref int stepb, ref int stepg, ref int stepr, ref int sucesFlag);

        IntPtr GetSegmentationImg(int _width, int _height, IntPtr input, int step, ref int newWidth, ref int newHeight, ref int newStep, ref double angle, ref int x1, ref int y1, ref int w1, ref int h1, bool isUp = true);

        void FreeImage(IntPtr data);

        string GetModelName();
    }
}
